Skip to main content

Scheme 解释器

设计 Expression 数据结构时,使用 std::variant 数据结构,每一项在逻辑上都应该是 Expression,例如 1 是 expression,+ 是 expression,Eval 用于计算 Expression,所以 Eval 中不应该存在对 token 的解析过程,这部分必须由 parser 完成,同时,计算的结果也应该是 Expression

Eval 计算时,对于用户自定义的 procedure,必须新建一个 Environment,然后在这个环境之中绑定相关参数。